home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.applet.Applet; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.io.DataInputStream; import java.net.Socket; import java.util.Date; public class led_clock extends Applet implements Runnable { public final int MODE_DATE; public final int MODE_12_HOUR = 12; public final int MODE_24_HOUR = 24; public static final int BACKCOLOR = 0; public static final int LEDCOLOR = 1; public static final int FRAMECOLOR = 2; Date theDate; String server_name; int lastHour; int lastMinute; int lastSecond; Thread tickTock; int speed = 1000; int lastTenHour; int lastTenMinute; int lastTenSecond; Color LEDColour; Color BackGround; Color FrameColour; int Mode; int lastamORpm; String tick_sound; String alarm_sound; int alarm_hour; int alarm_minute; boolean alarm_set; public String[][] getParameterInfo() { String[][] var1 = new String[][]{{"ledcolor", "string", "color of the characters (ex. green)"}, {"backcolor", "string", "background color of applet window (ex. black)"}, {"framecolor", "string", "border color of applet window (ex. blue)"}, {"clock_mode", "integer", "12 or 24 hour clock; 0 for date only "}, {"time_mode", "string", "time taken from client or server clock"}}; return var1; } public String getAppletInfo() { return new String("Netobjects LED clock"); } public void init() { this.lastHour = 0; this.lastMinute = 0; this.lastSecond = 0; this.lastTenHour = 0; this.lastTenMinute = 0; this.lastTenSecond = 0; this.lastamORpm = -1; this.theDate = new Date(); String var1 = ((Applet)this).getParameter("backcolor"); this.BackGround = var1 == null ? Color.black : this.GetColourFromString(var1, 0); var1 = ((Applet)this).getParameter("ledcolor"); this.LEDColour = var1 == null ? Color.green : this.GetColourFromString(var1, 1); var1 = ((Applet)this).getParameter("framecolor"); this.FrameColour = var1 == null ? Color.green : this.GetColourFromString(var1, 2); var1 = ((Applet)this).getParameter("clock_mode"); this.Mode = var1 == null ? 24 : Integer.valueOf(var1); if (this.Mode != 24 && this.Mode != 12) { this.Mode = 0; } this.tick_sound = ((Applet)this).getParameter("tick_sound"); this.alarm_sound = ((Applet)this).getParameter("alarm_sound"); var1 = ((Applet)this).getParameter("time_mode"); if (var1 != null && var1.equals("server")) { this.init_server(); } else { this.server_name = "local"; } var1 = ((Applet)this).getParameter("alarm"); this.alarm_set = var1 == null ? false : this.set_alarm(var1); ((Applet)this).resize(120, 36); ((Component)this).repaint(); } boolean set_alarm(String var1) { try { String var2 = var1.substring(0, var1.indexOf(":")); String var3 = var1.substring(var1.indexOf(":") + 1, var1.length()); this.alarm_hour = Integer.parseInt(var2); this.alarm_minute = Integer.parseInt(var3); return true; } catch (Exception var4) { System.out.println("error in alarm format"); return false; } } void init_server() { String var1 = new String(((Applet)this).getCodeBase().toString()); if (var1.startsWith("file")) { this.server_name = "local"; } else { try { String var2 = var1.substring(var1.indexOf("//") + 2); var2 = var2.substring(0, var2.indexOf("/")); Socket var3 = new Socket(var2, 13); DataInputStream var4 = new DataInputStream(var3.getInputStream()); this.theDate = new Date(Date.parse(var4.readLine())); var3.close(); this.server_name = var2; } catch (Exception var5) { System.out.println("Error initializing from server"); this.server_name = "local"; } } } public Color GetColourFromString(String var1, int var2) { if (var1.equalsIgnoreCase("BLACK")) { return Color.black; } else if (var1.equalsIgnoreCase("BLUE")) { return Color.blue; } else if (var1.equalsIgnoreCase("CYAN")) { return Color.cyan; } else if (var1.equalsIgnoreCase("DARKGRAY")) { return Color.darkGray; } else if (var1.equalsIgnoreCase("GRAY")) { return Color.gray; } else if (var1.equalsIgnoreCase("GREEN")) { return Color.green; } else if (var1.equalsIgnoreCase("LIGHTGRAY")) { return Color.lightGray; } else if (var1.equalsIgnoreCase("MAGENTA")) { return Color.magenta; } else if (var1.equalsIgnoreCase("ORANGE")) { return Color.orange; } else if (var1.equalsIgnoreCase("PINK")) { return Color.pink; } else if (var1.equalsIgnoreCase("RED")) { return Color.red; } else if (var1.equalsIgnoreCase("WHITE")) { return Color.white; } else if (var1.equalsIgnoreCase("YELLOW")) { return Color.yellow; } else { switch (var2) { case 0: return Color.black; case 1: return Color.green; case 2: return Color.green; default: return Color.black; } } } public void paint(Graphics var1) { Color var2 = var1.getColor(); var1.setColor(this.BackGround); var1.fillRect(0, 0, ((Component)this).bounds().width - 1, ((Component)this).bounds().height - 1); var1.setColor(this.FrameColour); var1.drawRect(0, 0, ((Component)this).bounds().width - 1, ((Component)this).bounds().height - 1); this.DrawClock(var1); var1.setColor(var2); } public final synchronized void update(Graphics var1) { Color var2 = var1.getColor(); this.increment_clock(); if (this.Mode == 0) { int var3 = this.theDate.getMonth() + 1; int var4 = this.theDate.getDate(); this.theDate.getYear(); if (var3 > 9) { this.DrawTenHour(1); this.DrawHour(var3 - 10); } else { this.DrawHour(var3); } if (var4 > 9) { this.DrawTenSecond(var4 / 10); this.DrawSecond(var4 % 10); } else { this.DrawSecond(var4); } } else { int var10 = 0; int var13 = 0; int var5 = 0; var5 = this.theDate.getSeconds(); var13 = this.theDate.getMinutes(); var10 = this.theDate.getHours(); byte var9; if (this.Mode == 12 && var10 > 12) { var10 -= 12; var9 = 1; } else if (var10 == 12) { var9 = 1; } else { var9 = 0; } if (this.Mode == 12 && var10 == 0) { var10 = 12; } int var6 = var10 / 10; var10 -= var6 * 10; if (this.Mode == 12 && var6 == 0) { var6 = -1; } int var7 = var13 / 10; var13 -= var7 * 10; int var8 = var5 / 10; var5 -= var8 * 10; if (var5 != this.lastSecond) { this.DrawSecond(var5); this.lastSecond = var5; } if (var8 != this.lastTenSecond) { this.DrawTenSecond(var8); this.lastTenSecond = var8; } if (var13 != this.lastMinute) { this.DrawMinute(var13); this.lastMinute = var13; } if (var7 != this.lastTenMinute) { this.DrawTenMinute(var7); this.lastTenMinute = var7; } if (var10 != this.lastHour) { this.DrawHour(var10); this.lastHour = var10; } if (var6 != this.lastTenHour) { this.DrawTenHour(var6); this.lastTenHour = var6; if (this.Mode == 12) { this.DrawAMorPM(var9); } } if (this.Mode == 12 && var9 != this.lastamORpm) { this.DrawAMorPM(var9); this.lastamORpm = var9; } if (this.alarm_set) { if (this.theDate.getHours() == this.alarm_hour && this.theDate.getMinutes() == this.alarm_minute && this.alarm_sound != null) { ((Applet)this).play(((Applet)this).getDocumentBase(), this.tick_sound); } } else if (this.tick_sound != null) { ((Applet)this).play(((Applet)this).getDocumentBase(), this.tick_sound); } } this.DrawColons(); var1.setColor(var2); } void increment_clock() { if (this.server_name.equals("local")) { this.theDate = new Date(); } else if (this.theDate.getSeconds() == 59) { this.theDate.setSeconds(0); if (this.theDate.getMinutes() == 59) { this.theDate.setMinutes(0); if (this.theDate.getHours() == 23) { this.init_server(); } else { this.theDate.setHours(this.theDate.getHours() + 1); } } else { this.theDate.setMinutes(this.theDate.getMinutes() + 1); } } else { this.theDate.setSeconds(this.theDate.getSeconds() + 1); } } public synchronized void DrawClock(Graphics var1) { if (this.Mode != 0) { int var6 = this.theDate.getSeconds(); int var7 = this.theDate.getMinutes(); int var8 = this.theDate.getHours(); byte var5; if (this.Mode == 12 && var8 > 12) { var8 -= 12; var5 = 1; } else if (var8 == 12) { var5 = 1; } else { var5 = 0; } if (this.Mode == 12 && var8 == 0) { var8 = 12; } int var2 = var8 / 10; var8 -= var2 * 10; if (this.Mode == 12 && var2 == 0) { var2 = -1; } int var3 = var7 / 10; var7 -= var3 * 10; int var4 = var6 / 10; var6 -= var4 * 10; this.DrawSecond(var6); this.DrawTenSecond(var4); this.DrawMinute(var7); this.DrawTenMinute(var3); this.DrawHour(var8); this.DrawTenHour(var2); this.DrawColons(); if (this.Mode == 12) { this.DrawAMorPM(var5); } } } public synchronized void DrawSecond(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 99, 5); } public synchronized void DrawTenSecond(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 81, 5); } public synchronized void DrawMinute(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 61, 5); } public synchronized void DrawTenMinute(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 43, 5); } public synchronized void DrawHour(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 23, 5); } public synchronized void DrawTenHour(int var1) { this.DrawSevenSegments(((Component)this).getGraphics(), var1, 5, 5); } public synchronized void DrawAMorPM(int var1) { Graphics var2 = ((Component)this).getGraphics(); var2.setColor(this.LEDColour); if (var1 == 1) { var2.fillRect(4, 5, 2, 9); var2.fillRect(4, 5, 6, 2); var2.fillRect(4, 9, 6, 2); var2.fillRect(10, 6, 2, 4); var2.setColor(this.BackGround); var2.fillRect(4, 20, 8, 10); } else { var2.fillRect(4, 22, 2, 8); var2.fillRect(5, 21, 6, 2); var2.fillRect(10, 22, 2, 8); var2.fillRect(4, 25, 6, 2); var2.setColor(this.BackGround); var2.fillRect(4, 5, 8, 10); } } public synchronized void DrawColons() { Graphics var1 = ((Component)this).getGraphics(); var1.setColor(this.LEDColour); if (this.Mode == 0) { var1.fillRect(55, 16, 10, 2); } else { var1.fillRect(39, 13, 2, 2); var1.fillRect(39, 22, 2, 2); var1.fillRect(77, 13, 2, 2); var1.fillRect(77, 22, 2, 2); } } private synchronized void DrawSevenSegments(Graphics var1, int var2, int var3, int var4) { switch (var2) { case -1: this.DrawSegment0Off(var1, var3, var4); this.DrawSegment1Off(var1, var3, var4); this.DrawSegment2Off(var1, var3, var4); this.DrawSegment3Off(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5Off(var1, var3, var4); this.DrawSegment6Off(var1, var3, var4); return; case 0: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3Off(var1, var3, var4); this.DrawSegment4On(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 1: this.DrawSegment0Off(var1, var3, var4); this.DrawSegment1Off(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3Off(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6Off(var1, var3, var4); return; case 2: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1Off(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4On(var1, var3, var4); this.DrawSegment5Off(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 3: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1Off(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 4: this.DrawSegment0Off(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6Off(var1, var3, var4); return; case 5: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2Off(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 6: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2Off(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4On(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 7: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1Off(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3Off(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6Off(var1, var3, var4); return; case 8: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4On(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6On(var1, var3, var4); return; case 9: this.DrawSegment0On(var1, var3, var4); this.DrawSegment1On(var1, var3, var4); this.DrawSegment2On(var1, var3, var4); this.DrawSegment3On(var1, var3, var4); this.DrawSegment4Off(var1, var3, var4); this.DrawSegment5On(var1, var3, var4); this.DrawSegment6Off(var1, var3, var4); return; default: } } private synchronized void DrawSegment0On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawHorizontalLine(var1, var2 + 3, var3 + 1, 9); } private synchronized void DrawSegment0Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawHorizontalLine(var1, var2 + 3, var3 + 1, 9); } private synchronized void DrawSegment3On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawHorizontalLine(var1, var2 + 3, var3 + 12, 9); } private synchronized void DrawSegment3Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawHorizontalLine(var1, var2 + 3, var3 + 12, 9); } private synchronized void DrawSegment6On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawHorizontalLine(var1, var2 + 3, var3 + 23, 9); } private synchronized void DrawSegment6Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawHorizontalLine(var1, var2 + 3, var3 + 23, 9); } private synchronized void DrawSegment1On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawVerticalLine(var1, var2 + 1, var3 + 3, 9); } private synchronized void DrawSegment1Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawVerticalLine(var1, var2 + 1, var3 + 3, 9); } private synchronized void DrawSegment2On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawVerticalLine(var1, var2 + 12, var3 + 3, 9); } private synchronized void DrawSegment2Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawVerticalLine(var1, var2 + 12, var3 + 3, 9); } private synchronized void DrawSegment4On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawVerticalLine(var1, var2 + 1, var3 + 14, 9); } private synchronized void DrawSegment4Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawVerticalLine(var1, var2 + 1, var3 + 14, 9); } private synchronized void DrawSegment5On(Graphics var1, int var2, int var3) { var1.setColor(this.LEDColour); this.DrawVerticalLine(var1, var2 + 12, var3 + 14, 9); } private synchronized void DrawSegment5Off(Graphics var1, int var2, int var3) { var1.setColor(this.BackGround); this.DrawVerticalLine(var1, var2 + 12, var3 + 14, 9); } private synchronized void DrawHorizontalLine(Graphics var1, int var2, int var3, int var4) { var1.drawLine(var2 + 1, var3 - 1, var2 + var4 - 3, var3 - 1); var1.drawLine(var2, var3, var2 + var4 - 1, var3); var1.drawLine(var2 + 1, var3 + 1, var2 + var4 - 3, var3 + 1); } private synchronized void DrawVerticalLine(Graphics var1, int var2, int var3, int var4) { var1.drawLine(var2 - 1, var3 + 1, var2 - 1, var3 + var4 - 3); var1.drawLine(var2, var3, var2, var3 + var4 - 1); var1.drawLine(var2 + 1, var3 + 1, var2 + 1, var3 + var4 - 3); } public void start() { if (this.tickTock == null) { this.tickTock = new Thread(this); this.tickTock.start(); } } public void stop() { if (this.tickTock != null) { this.tickTock.stop(); this.tickTock = null; } } public void run() { while(true) { try { Thread.currentThread(); Thread.sleep((long)this.speed); } catch (InterruptedException var1) { } super.repaint(); } } }